首页 > 试题广场 >

盛水最多的容器

[编程题]盛水最多的容器
  • 热度指数:33242 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个数组height,长度为n,每个数代表坐标轴中的一个点的高度,height[i]是在第i点的高度,请问,从中选2个高度与x轴组成的容器最多能容纳多少水
1.你不能倾斜容器
2.当n小于2时,视为不能形成容器,请返回0
3.数据保证能容纳最多的水不会超过整形范围,即不会超过231-1

数据范围:


如输入的height为[1,7,3,2,4,5,8,2,7],那么如下图:


示例1

输入

[1,7,3,2,4,5,8,2,7]

输出

49
示例2

输入

[2,2]

输出

2
示例3

输入

[5,4,3,2,1,5]

输出

25
function maxArea( height ) {
    // write code here
    let l=0,r=height.length-1;
    let max=0;
    while(l<=r){
        const area=(r-l)*Math.min(height[l],height[r]);
        max=Math.max(area,max);

        if(height[l]>height[r]){
            r--
        }else{
            l++
        }
    }
    return max;
}

编辑于 2024-03-20 22:24:46 回复(0)

问题信息

上传者:牛客301499号
难度:
1条回答 3144浏览

热门推荐

通过挑战的用户

查看代码